home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-04-27 | 2.3 KB | 133 lines | [TEXT/CWIE] |
- //Copyright (c) 1997 Aidan Cully
- //All rights reserved
-
- #include <Script.h>
- #include <Errors.h>
- #include "CLFiles.h"
-
- TResFile *TResFile::presRes = 0l;
-
- #pragma mark ---TBaseFile---
-
- TBaseFile::TBaseFile() {
- hasFile = false;
- }
-
- Boolean TBaseFile::HasFile() {
- return( hasFile );
- }
-
- OSErr TBaseFile::SetFile( FSSpec newFile ) {
- theFile = newFile;
- return( noErr );
- }
-
- OSErr TBaseFile::CreateNew( OSType creator, OSType fileType, ScriptCode theScript ) {
- return( FSpCreate( &theFile, creator, fileType, theScript ) );
- }
-
- #pragma mark ---TDataFile---
-
- TDataFile::TDataFile() {
- isOpenDF = false;
- }
-
- OSErr TDataFile::OpenDF( SInt8 perms ) {
- OSErr theErr;
-
- theErr = FSpOpenDF( &theFile, perms, &fRef );
- if( theErr == noErr )
- isOpenDF = true;
- return( theErr );
- }
-
- OSErr TDataFile::CloseDF() {
- OSErr theErr;
-
- if( isOpenDF ) {
- theErr = FSClose( fRef );
- if( theErr == noErr )
- isOpenDF = false;
- } else
- theErr = fnOpnErr;
- return( theErr );
- }
-
- OSErr TDataFile::SetFPos( short posMode, SInt32 posOff ) {
- if( !isOpenDF )
- return( fnOpnErr );
- else
- return( ::SetFPos( fRef, posMode, posOff ) );
- }
-
- OSErr TDataFile::GetFPos( SInt32 &where ) {
- if( !isOpenDF )
- return( fnOpnErr );
- return( ::GetFPos( fRef, &where ) );
- }
-
- OSErr TDataFile::WriteDF( void *buf, SInt32 bufLen ) {
- if( !isOpenDF )
- return( fnOpnErr );
- else
- return( FSWrite( fRef, &bufLen, buf ) );
- }
-
- OSErr TDataFile::ReadDF( void *buf, SInt32 bufLen ) {
- if( !isOpenDF )
- return( fnOpnErr );
- else
- return( FSRead( fRef, &bufLen, buf ) );
- }
-
- OSErr TDataFile::SetFile( FSSpec newFile ) {
- OSErr theErr = noErr;
-
- if( isOpenDF )
- theErr = CloseDF();
- theFile = newFile;
- return noErr;
- }
-
- short TDataFile::GetDFRef() {
- if( isOpenDF )
- return( fRef );
- else
- return( 0l );
- }
-
- Boolean TDataFile::IsOpenDF() {
- return( isOpenDF );
- }
-
- #pragma mark ---TResFile---
-
- TResFile::TResFile() {
- isOpenRF = false;
- }
-
- OSErr TResFile::OpenRF( SInt8 perms ) {
- OSErr theErr;
-
- if( !hasFile )
- return( fnfErr );
- if( isOpenRF )
- return( fnOpnErr );
- theErr = FSpOpenRF( &theFile, perms, &rRef );
- if( theErr == noErr )
- isOpenRF = true;
- return( theErr );
- }
-
- OSErr TResFile::CloseRF() {
- OSErr theErr;
-
- if( !isOpenRF )
- return( fnOpnErr );
- if( !hasFile )
- return( fnfErr );
- theErr = FSClose( rRef );
- if( theErr == noErr )
- isOpenRF = false;
- return( theErr );
- }